// 引入express
const express = require('express')
// 创建服务对象
const app = express()
// 监听端口
app.listen(8080)

// 中间件函数
// function isLogin(req,res,next){}
const isLogin = (req, res, next) => {
  let username = req.query.username
  if (username != 'admin') {
    // res.send('非法请求')
    // 指定中间件处理流向,流到有err参数的中间件中 错误的统一处理方案
    next(err)
  } else {
    next()
  }
}

const logined = (req, res, next) => {
  req.nickname = '李四'
  next()
}

// 权限
const login = [isLogin, logined]



// 用户登录过后才能进入的页面
// 参数1 uri路由规则
// 参数2 中间件名称 可以为数组 可选  如果它不存在，则参数2则为回调函数
// 参数3 回调函数
app.get('/user',login, (req, res) => {
  res.send('用户中心' + req.nickname)
})


// 错误接受处理中间件 多一个参数 err，必须是函数参数第1位，以前的req,res,next 向后顺延
app.use((err, req, res, next) => {
  res.status(401).send('非法登录')
})